%    Funzione che determina in un insieme di punti         
%    il valore del polinomio interpolante ottenuto        
%    dalla formula di Lagrange.  
%
%    function [y] = int_lag(xnodi,fnodi,x)                      
%
%    Dati di input:                                        
% 
%    xnodi vettore con i nodi dell'interpolazione         
%    fnodi vettore con i valori nei nodi                  
%    x   vettore con i punti in cui si vuole            
%         calcolare il valore del polinomio              
%         interpolante                                  
%    Dati di output:                                       
%    y   vettore contenente i valori assunti            
%         dal polinomio interpolante                     
%                                                          

function [y] = int_lag(xnodi,fnodi,x)

n =length(xnodi);
m = length(x);
y=zeros(m,1);
for i=1:n
   ind = [1:i-1,i+1:n];
   den(i) = prod(xnodi(i)-xnodi(ind));
end
for k=1:m
   y(k) = 0;
   for i=1:n
    ind = [1:i-1,i+1:n];
    phi =  prod( x(k) - xnodi(ind) )/den(i);
    y(k) = y(k) + fnodi(i) * phi;
   end
end 
